package com.wzq.solution;

import java.util.*;

class Solution357 {
    int cnt=0;
    public int countNumbersWithUniqueDigits(int n) {
        /*if(n>0){
            cnt += 9;
        }*/
        if(n>1){



            foo(n,0,new HashSet<Integer>());


        }
        return cnt;
    }
    private void foo(int n, int c, Set<Integer> set){
        if(c == n){
            cnt++;
            System.out.println(cnt+"\t"+set);
        }else{
            for(int i=0;i<=9;i++){   

                if(i== 0){
                    if((set.contains(0) && set.size() == 1) || set.isEmpty()){
                        set.add(i);
                        foo(n,c+1,set);
                    }
                }else{
                    set.add(i);
                    foo(n,c+1,set);
                    set.remove(i);
                }

            }
        }

    }


    private boolean isEmpty(List<Integer> set){
        for (int i=0;i<set.size();i++){
            if(set.get(i) != -1){
                return false;
            }
        }

        return true;
    }


    public static void main(String[] args) {
        new Solution357().countNumbersWithUniqueDigits(3);
    }
}